<?php
/*
	插件数据结构增删查改
*/
defined('BY_JYA') or exit('error');
global $_RQ,$_AR;
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$return=array();
if($_RQ['plugin_id']){
	$_SESSION['plugin_id']=intval($_RQ['plugin_id']);
}
if(!$_SESSION['plugin_id']){
	exi('请先选择插件！','error');
}
if($_RQ['op']=='list'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	$result=cloud_request('plugin.table.list',$params);
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'数据表列表'),
			//array('op'=>'xml_add','title'=>'批量添加数据表'),
		),
		'list'=>array('data'=>'list','list'=>array(
			array('name'=>'name','title'=>'数据表标识','type'=>'string'),
			array('name'=>'title','title'=>'数据表名称','type'=>'string'),
			array('name'=>'type','title'=>'数据表类型','type'=>'radio','options'=>'types'),
		)),
		'search_one'=>array('name'=>'title','help'=>''),
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='edit'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	$id=intval($_RQ['id']);
	if($id){
		$params['id']=$id;
	}
	$result=cloud_request('plugin.table.edit',$params);
	if($result['item']['id']){
		$read=true;
	}else{
		$read=false;
	}
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',
		'tabs'=>array(
			array('op'=>'list','title'=>'数据表列表'),
		),
		'edits'=>array(
			array(
				'title'=>'数据表结构设计',
				'list'=>array(
					array('type'=>'string','title'=>'数据表标识','name'=>'name','read'=>$read),
					array('type'=>'string','title'=>'数据表名称','name'=>'title'),
					array('type'=>'radio','title'=>'数据表类型','name'=>'type','options'=>'types' ),
					array('type'=>'select','title'=>'关联表','name'=>'fid','options'=>'fathers','help'=>'如果数据表类型为主表，此处选择数据表的父表（如无父级表可不设置）；如果数据表类型为附表，此处选择数据表的主表（附表必须设置所属主表）'),
					array(
						'type'=>'array',
						'name'=>'fields',
						'title'=>'字段管理',
						'add_tip'=>'添加一个字段',
						'list'=>array(
							array('type'=>'string','name'=>'name','title'=>'字段标识'),
							array('type'=>'string','name'=>'title','title'=>'字段名称'),
						),'details'=>array(
							array('type'=>'string','name'=>'name','title'=>'字段标识'),
							array('type'=>'string','name'=>'title','title'=>'字段名称'),
							array('type'=>'select','name'=>'leixing','title'=>'字段类型','options'=>'leixing'),
							//array('type'=>'radio','name'=>'chansheng','title'=>'产生方式','options'=>'chanshengs'),
							array('type'=>'switch','name'=>'ciyao','title'=>'次要字段','help'=>'是否作为次要字段'),
							array('type'=>'text','name'=>'content','title'=>'设置选项信息','help'=>'如果数据类型为单选、多选、状态码类型。请在此设置选项信息，格式为一行一个选项，选项值和选项名称以英文逗号隔开。如果需要从数据库读取数据作为选项。则按以下格式（table,数据表名,标题字段,筛选字段,字段值来源）其中字段值来源有两种，1表示来自环境参数，2表示来自请求参数；筛选字段和字段值来源两项可不设置'),
						)
					),
				),
			)
		)
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='xml_add'){
	//文本形式批量添加数据表
	if($_RQ['postdata']){
		$postdata=get_postdata();
		$data=$postdata['data'];
		$data=xml2array($data);
		//$cs=var_export($data['table'],true);
		//exi($cs,'error');
		$data=base64_encode(ijson_encode($data['table']));
		$params=array('plugin_id'=>$_SESSION['plugin_id'],'data'=>$data);
		$result=cloud_request('plugin.table.xml_add',$params);
		exi($result);
	}
	$htmls=array(
		'type'=>'edit',
		'desc'=>'批量添加数据表',
		'tabs'=>array(
			array('op'=>'list','title'=>'数据表列表'),
		),
		'edit'=>array(
			array('type'=>'text','name'=>'data','title'=>'xml文本','help'=>'输入xml格式文本数据'),
		),
	);
	$return=array('item'=>array(),'htmls'=>$htmls);
	exi($return);
}
if($_RQ['op']=='post'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	$post=get_postdata();
	$params['postdata']=base64_encode(json_encode($post));
	$result=cloud_request('plugin.table.post',$params);
	exi($result);
}
if($_RQ['op'] == 'del'){
	$params=array('plugin_id'=>$_SESSION['plugin_id']);
	if($_RQ['id']){
		$params['id']=intval($_RQ['id']);
	}
	if($_RQ['del']){
		$params['del']=trim($_RQ['del']);
	}
	$result=cloud_request('plugin.table.del',$params);
	exi($result);
}